package cn.lg.soar.common.util.current;

/**
 * 当前用户接口
 * @author luguoxiang
 * 开源项目：https://gitee.com/lgx1992/lg-soar 求star！请给我star！请帮我点个star！
 */
public interface ICurrentUser extends IBaseUser {

        /**
         * 获取用户id
         * @param defaultValue 默认值
         * @return
         */
        default Long getId(Long defaultValue) {
                Long value = getId();
                if (value == null) {
                        return defaultValue;
                }
                return value;
        }

        /**
         * 获取用户名
         * @param defaultValue 默认值
         * @return
         */
        default String getUsername(String defaultValue) {
                String value = getUsername();
                if (value == null) {
                        return defaultValue;
                }
                return value;
        }

        /**
         * 获取用户类型
         * @param defaultValue 默认值
         * @return
         */
        default Integer getUserType(Integer defaultValue) {
                Integer value = getUserType();
                if (value == null) {
                        return defaultValue;
                }
                return value;
        }

        /**
         * 获取用户当前租户id
         * @param defaultValue 默认值
         * @return
         */
        default Integer getCurrentTenantId(Integer defaultValue) {
                Integer value = getCurrentTenantId();
                if (value == null) {
                        return defaultValue;
                }
                return value;
        }

        /**
         * 获取tokenid
         * @return
         */
        String getTokenId();

        /**
         * 获取tokenValue
         * @return
         */
        Long getTokenValue();

}
